#ifndef _I_RENDERER_H_
#define _I_RENDERER_H_
struct Matrix4;
struct Color4;
struct Vector2;
enum MSHID;
class RenderShadow;

class IRenderer
{
public:
	virtual ~IRenderer(){}
	virtual void draw(MSHID ID, const Matrix4& mat) = 0;
	virtual void draw(MSHID ID, const Matrix4& mat, const Color4& color) = 0;
	virtual void draw(MSHID ID, Matrix4& mat, float animetionTimer) = 0;
	virtual void draw(MSHID ID, Matrix4& mat, int animationNum, float animationTimer) = 0;
	virtual void draw(MSHID ID, const Matrix4& mat, const Color4& color, int animationNum, float animationTimer) = 0;

	virtual void drawSkyBox(MSHID ID) = 0;

	virtual void debugDraw(const Vector2& pos, char* str, ...) = 0;

	virtual RenderShadow* getRenderShadow() = 0;
private:
};

#endif
